const mysql = require('mysql')

// 连接mysql数据库
const db = mysql.createPool({
    host: '127.0.0.1',
    user: 'root',//登录账号
    password: 'admin123',//登录密码
    database: 'my_db_01'//操作的数据库
})

// 执行sql查询语句
const str1 = 'select * from users'
db.query(str1,(err,results)=>{
    if(err) return console.log(err.message)
    // select语句，results为数组
    console.log(results)
})

// 执行sql插入语句
const user2 = {username:'最后一个',password:'pc1234'}
  //sql语句，其中的？表示占位符 
const str2 = 'insert into users (username,password) values (?,?)'
db.query(str2,[user2.username,user2.password],(err,results)=>{
    if(err) return console.log(err.message)
    // insert into语句，results对象中affectedRows属性来判断是否插入成功
    if(results.affectedRows === 1){
        console.log('插入成功')
    }
})

// 执行sql插入语句 便捷版
const user3 = {username:'还有一个',password:'shouji'}
  //sql语句，其中的？表示占位符 
const str3 = 'insert into users set ?'
db.query(str3,user3,(err,results)=>{
    if(err) return console.log(err.message)
    if(results.affectedRows === 1){
        console.log('插入成功')
    }
})

// 执行sql更新语句
const user4 = {id:11,username:'被更新的最后一个',password:'990099'}
const str4 = 'update users set username=?,password=? where id=?'
db.query(str4,[user4.username,user4.password,user4.id],(err,results)=>{
    if(err) return console.log(err.message)
    //update语句，results对象中affectedRows属性来判断是否插入成功
    if(results.affectedRows === 1){
        console.log('更新成功')
    }
})

// 执行sql更新语句 便捷版
const user5 = {id:12,username:'被更新的还有一个',password:'aaa'}
const str5 = 'update users set ? where id=?'
db.query(str5,[user5,user5.id],(err,results)=>{
    if(err) return console.log(err.message)
    if(results.affectedRows === 1){
        console.log('更新成功')
    }
})

// 执行sql删除语句
const str6 = 'delete from users where id=?'
// 只有单个占位符时可以省略数据括号 也就是不用写数组形式
db.query(str6,12,(err,results)=>{
    if(err) return console.log(err.message)
    if(results.affectedRows === 1){
        console.log('删除成功')
    }
})

// 标记删除，因为delete会真正的删除数据，所有一般会在数据中设置一种状态【status】来标记删除，如果
// 为1表示已删除，0表示正常